import instance from '../../utils/http'

//导入接口API函数
import { reqSwiperData } from '../../api/index'

Page({
  data: {
    avatarUrl: '../../assets/images/love.jpg'
  },
  async chooseAvatar(event) {
    // this.setData({
    //   avatarUrl: event.detail.avatarUrl
    // })
    const { avatarUrl } = event.detail

    const { data: avatar } = await instance.upload(
      '/fileUpload',
      avatarUrl,
      'file'
    )
    this.setData({
      avatarUrl: avatar
    })
  },
  async handler() {
    //第一种调用方式通过.then调用获取数据
    // instance
    //   .requset({
    //     url: 'https://gmall-prod.atguigu.cn/mall-api/index/findBanner',
    //     method: 'GET'
    //   })
    //   .then((res) => {
    //     console.log(res)
    //   })

    //第二种调用方式 await和async 调用
    // const res = await instance.requset({
    //   url: '/index/findBanner',/cart/getCartList
    //   method: 'GET'
    // })

    // const res = await instance
    //   .get('/index/findBanner', null, { isLoading: true })
    //   .catch((err) => {
    //     console.log(err)
    //   })
    // console.log(res)
    // instance.get('/index/findBanner').then(()=>{
    //   instance.get('/index/findBanner').then(()=>{})
    // })

    const res = await reqSwiperData()
    console.log(res)
  },
  handler1() {
    wx.request({
      url: 'https://gmall-prod.atguigu.cn/mall-api/index/findBanner',
      method: 'GET',
      timeout: 100,
      success: (res) => {
        //虽然接口错了,但是依然会走success
        //只要成功接收到服务器返回结果,无论成功与否(状态码) 都会执行success
        //开发者需要根据逻辑 自行判断
      },
      fail: (error) => {
        //网络异常或者接口不对
        console.log(error)
      }
    })
  },
  //测试并发请求
  async allHandler() {
    //通过anync await同时发送多个请求
    //async 和await 能够控制异步任务以同步的流程来执行

    //async 和await 发送多个请求
    //当第一个请求借宿以后,才能够发送第二个请求
    //在前一个请求发送之前,才能够发送下一个请求
    //会造成请求阻塞,影响页面渲染

    //  await instance.get('/index/findBanner')
    //  await instance.get('/index/findCategory1')
    //  await instance.get('/index/findBanner')
    //  await instance.get('/index/findCategory1')

    //通过Promise.all 同时发送多个请求
    //Promise.all将通过请求同时发送
    //Promise.all将多个异步请求同时发送 也就是并行发送
    //比不会造成请求阻塞 不会影响页面渲染速度
    // await Promise.all([instance.get('/index/findBanner')], [instance.get('/index/findCategory1')], [instance.get('/index/findBanner')], [instance.get('/index/findCategory1')])

    await instance.all(
      instance.get('/index/findBanner'),
      instance.get('/index/findCategory1'),
      instance.get('/index/findBanner'),
      instance.get('/index/findCategory1'),
      instance.get('/index/findBanner'),
      instance.get('/index/findCategory1'),
      instance.get('/index/findBanner'),
      instance.get('/index/findCategory1'),
      instance.get('/index/findBanner'),
      instance.get('/index/findCategory1'),
      instance.get('/index/findBanner'),
      instance.get('/index/findCategory1')
    )
  }
})
